package com.giantlizard.cloud.api.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.util.Date;

/**
 * @author kangdongwei
 * @since 2024-07-28
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@EqualsAndHashCode
@ApiModel(value="SysUser对象", description="系统-用户")
public class SysUser implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
    * 映射字段 user_id
    * 字段描述 内部ID
    */
    @ApiModelProperty(value = "内部ID")
    private String userId;
    /**
    * 映射字段 user_name
    * 字段描述 用户名称
    */
    @ApiModelProperty(value = "用户名称")
    private String username;
    /**
     * 映射字段 login_name
     * 字段描述 用户登录名
     */
    @ApiModelProperty(value = "用户登录名")
    private String loginName;
    /**
    * 映射字段 nick_name
    * 字段描述 用户昵称
    */
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    /**
    * 映射字段 user_email
    * 字段描述 邮箱
    */
    @ApiModelProperty(value = "邮箱")
    private String userEmail;
    /**
    * 映射字段 phone_number
    * 字段描述 手机号
    */
    @ApiModelProperty(value = "手机号")
    private String phoneNumber;
    /**
    * 映射字段 user_sex
    * 字段描述 用户性别 （0 女 1男）
    */
    @ApiModelProperty(value = "用户性别 （0 女 1男）")
    private String userSex;
    /**
    * 映射字段 password
    * 字段描述 密码
    */
    @ApiModelProperty(value = "密码")
    private String password;
    /**
     * 映射字段 user_img
     * 字段描述 用户头像
     */
    @ApiModelProperty(value = "用户头像")
    private String userImg;
    /**
     * 映射字段 user_addr
     * 字段描述 用户通信地址
     */
    @ApiModelProperty(value = "用户通信地址")
    private String userAddr;
    /**
    * 映射字段 login_ip
    * 字段描述 最后登录IP
    */
    @ApiModelProperty(value = "最后登录IP")
    private String loginIp;
    /**
    * 映射字段 login_date
    * 字段描述 最后登录时间
    */
    @ApiModelProperty(value = "最后登录时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date loginDate;
    /**
    * 映射字段 user_status
    * 字段描述 用户账号状态 'NORMAL' 正常 'PROHIBIT' 注销
    */
    @ApiModelProperty(value = "用户账号状态 'NORMAL' 正常 'PROHIBIT' 注销")
    private String userStatus;
    /**
    * 映射字段 registered_time
    * 字段描述 注册时间
    */
    @ApiModelProperty(value = "注册时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date registeredTime;
}
